----------------------------------------------------------------------------------
-- Company:        Johns Hopkins University
-- Engineer:       Kevin Green
-- 
-- Create Date:    23:02:47 12/02/2011 
-- Design Name:    mask_lut_6
-- Module Name:    mask_lut_6 - RTL 
-- Project Name:   top_gillis_green
-- Target Devices: 
-- Tool versions: 
-- Description:    This is the 6-bit look-up table.  Given a the black and white
--                 vector, current move, and player, an output vector with the 
--                 mask positions is created.  This mask is used to clear the 
--                 opponents positions and set the players positions.
--
-- Dependencies: 
--
-- Revision: 
-- Revision 0.01 - File Created
-- Additional Comments: 
--
----------------------------------------------------------------------------------
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use work.game_logic_pkg.all;

-- Uncomment the following library declaration if using
-- arithmetic functions with Signed or Unsigned values
--use IEEE.NUMERIC_STD.ALL;

-- Uncomment the following library declaration if instantiating
-- any Xilinx primitives in this code.
--library UNISIM;
--use UNISIM.VComponents.all;
 
entity mask_lut_6 is
    Port ( black : in  STD_LOGIC_VECTOR (7 downto 0);
           white : in  STD_LOGIC_VECTOR (7 downto 0);
           player : in  STD_LOGIC;
			  move : in STD_LOGIC_VECTOR (7 downto 0);
           data_out : out  STD_LOGIC_VECTOR (7 downto 0));
end mask_lut_6;

architecture RTL of mask_lut_6 is
begin

process(black, white, player, move) is
begin
	case(player & black & white & move) is
		when '0' & x"010204" => data_out <= x"02";
		when '0' & x"010608" => data_out <= x"06";
		when '0' & x"010a04" => data_out <= x"02";
		when '0' & x"010e10" => data_out <= x"0e";
		when '0' & x"011204" => data_out <= x"02";
		when '0' & x"011608" => data_out <= x"06";
		when '0' & x"011a04" => data_out <= x"02";
		when '0' & x"011e20" => data_out <= x"1e";
		when '0' & x"012204" => data_out <= x"02";
		when '0' & x"012608" => data_out <= x"06";
		when '0' & x"012a04" => data_out <= x"02";
		when '0' & x"012e10" => data_out <= x"0e";
		when '0' & x"013204" => data_out <= x"02";
		when '0' & x"013608" => data_out <= x"06";
		when '0' & x"013a04" => data_out <= x"02";
		when '1' & x"020104" => data_out <= x"02";
		when '0' & x"020408" => data_out <= x"04";
		when '1' & x"020401" => data_out <= x"02";
		when '0' & x"020508" => data_out <= x"04";
		when '1' & x"020904" => data_out <= x"02";
		when '0' & x"020c10" => data_out <= x"0c";
		when '1' & x"020c01" => data_out <= x"02";
		when '0' & x"020d10" => data_out <= x"0c";
		when '1' & x"021104" => data_out <= x"02";
		when '0' & x"021408" => data_out <= x"04";
		when '1' & x"021401" => data_out <= x"02";
		when '0' & x"021508" => data_out <= x"04";
		when '1' & x"021904" => data_out <= x"02";
		when '0' & x"021c20" => data_out <= x"1c";
		when '1' & x"021c01" => data_out <= x"02";
		when '0' & x"021d20" => data_out <= x"1c";
		when '1' & x"022104" => data_out <= x"02";
		when '0' & x"022408" => data_out <= x"04";
		when '1' & x"022401" => data_out <= x"02";
		when '0' & x"022508" => data_out <= x"04";
		when '1' & x"022904" => data_out <= x"02";
		when '0' & x"022c10" => data_out <= x"0c";
		when '1' & x"022c01" => data_out <= x"02";
		when '0' & x"022d10" => data_out <= x"0c";
		when '1' & x"023104" => data_out <= x"02";
		when '0' & x"023408" => data_out <= x"04";
		when '1' & x"023401" => data_out <= x"02";
		when '0' & x"023508" => data_out <= x"04";
		when '1' & x"023904" => data_out <= x"02";
		when '1' & x"023c01" => data_out <= x"02";
		when '0' & x"030408" => data_out <= x"04";
		when '0' & x"030c10" => data_out <= x"0c";
		when '0' & x"031408" => data_out <= x"04";
		when '0' & x"031c20" => data_out <= x"1c";
		when '0' & x"032408" => data_out <= x"04";
		when '0' & x"032c10" => data_out <= x"0c";
		when '0' & x"033408" => data_out <= x"04";
		when '0' & x"040201" => data_out <= x"02";
		when '1' & x"040208" => data_out <= x"04";
		when '1' & x"040308" => data_out <= x"04";
		when '0' & x"040810" => data_out <= x"08";
		when '1' & x"040802" => data_out <= x"04";
		when '0' & x"040910" => data_out <= x"08";
		when '1' & x"040902" => data_out <= x"04";
		when '0' & x"040a01" => data_out <= x"02";
		when '0' & x"040a10" => data_out <= x"08";
		when '0' & x"040b10" => data_out <= x"08";
		when '0' & x"041201" => data_out <= x"02";
		when '1' & x"041208" => data_out <= x"04";
		when '1' & x"041308" => data_out <= x"04";
		when '0' & x"041820" => data_out <= x"18";
		when '1' & x"041802" => data_out <= x"04";
		when '0' & x"041920" => data_out <= x"18";
		when '1' & x"041902" => data_out <= x"04";
		when '0' & x"041a01" => data_out <= x"02";
		when '0' & x"041a20" => data_out <= x"18";
		when '0' & x"041b20" => data_out <= x"18";
		when '0' & x"042201" => data_out <= x"02";
		when '1' & x"042208" => data_out <= x"04";
		when '1' & x"042308" => data_out <= x"04";
		when '0' & x"042810" => data_out <= x"08";
		when '1' & x"042802" => data_out <= x"04";
		when '0' & x"042910" => data_out <= x"08";
		when '1' & x"042902" => data_out <= x"04";
		when '0' & x"042a01" => data_out <= x"02";
		when '0' & x"042a10" => data_out <= x"08";
		when '0' & x"042b10" => data_out <= x"08";
		when '0' & x"043201" => data_out <= x"02";
		when '1' & x"043208" => data_out <= x"04";
		when '1' & x"043308" => data_out <= x"04";
		when '1' & x"043802" => data_out <= x"04";
		when '1' & x"043902" => data_out <= x"04";
		when '0' & x"043a01" => data_out <= x"02";
		when '1' & x"050208" => data_out <= x"04";
		when '0' & x"050810" => data_out <= x"08";
		when '1' & x"050802" => data_out <= x"04";
		when '0' & x"050a10" => data_out <= x"08";
		when '1' & x"051208" => data_out <= x"04";
		when '0' & x"051820" => data_out <= x"18";
		when '1' & x"051802" => data_out <= x"04";
		when '0' & x"051a20" => data_out <= x"18";
		when '1' & x"052208" => data_out <= x"04";
		when '0' & x"052810" => data_out <= x"08";
		when '1' & x"052802" => data_out <= x"04";
		when '0' & x"052a10" => data_out <= x"08";
		when '1' & x"053208" => data_out <= x"04";
		when '1' & x"053802" => data_out <= x"04";
		when '1' & x"060108" => data_out <= x"06";
		when '0' & x"060810" => data_out <= x"08";
		when '1' & x"060801" => data_out <= x"06";
		when '0' & x"060910" => data_out <= x"08";
		when '1' & x"061108" => data_out <= x"06";
		when '0' & x"061820" => data_out <= x"18";
		when '1' & x"061801" => data_out <= x"06";
		when '0' & x"061920" => data_out <= x"18";
		when '1' & x"062108" => data_out <= x"06";
		when '0' & x"062810" => data_out <= x"08";
		when '1' & x"062801" => data_out <= x"06";
		when '0' & x"062910" => data_out <= x"08";
		when '1' & x"063108" => data_out <= x"06";
		when '1' & x"063801" => data_out <= x"06";
		when '0' & x"070810" => data_out <= x"08";
		when '0' & x"071820" => data_out <= x"18";
		when '0' & x"072810" => data_out <= x"08";
		when '0' & x"080402" => data_out <= x"04";
		when '1' & x"080410" => data_out <= x"08";
		when '0' & x"080502" => data_out <= x"04";
		when '1' & x"080510" => data_out <= x"08";
		when '0' & x"080601" => data_out <= x"06";
		when '1' & x"080610" => data_out <= x"08";
		when '1' & x"080710" => data_out <= x"08";
		when '0' & x"081020" => data_out <= x"10";
		when '1' & x"081004" => data_out <= x"08";
		when '0' & x"081120" => data_out <= x"10";
		when '1' & x"081104" => data_out <= x"08";
		when '0' & x"081220" => data_out <= x"10";
		when '1' & x"081204" => data_out <= x"08";
		when '0' & x"081320" => data_out <= x"10";
		when '1' & x"081304" => data_out <= x"08";
		when '0' & x"081402" => data_out <= x"04";
		when '0' & x"081420" => data_out <= x"10";
		when '0' & x"081502" => data_out <= x"04";
		when '0' & x"081520" => data_out <= x"10";
		when '0' & x"081601" => data_out <= x"06";
		when '0' & x"081620" => data_out <= x"10";
		when '0' & x"081720" => data_out <= x"10";
		when '0' & x"082402" => data_out <= x"04";
		when '1' & x"082410" => data_out <= x"08";
		when '0' & x"082502" => data_out <= x"04";
		when '1' & x"082510" => data_out <= x"08";
		when '0' & x"082601" => data_out <= x"06";
		when '1' & x"082610" => data_out <= x"08";
		when '1' & x"082710" => data_out <= x"08";
		when '1' & x"083004" => data_out <= x"08";
		when '1' & x"083104" => data_out <= x"08";
		when '1' & x"083204" => data_out <= x"08";
		when '1' & x"083304" => data_out <= x"08";
		when '0' & x"083402" => data_out <= x"04";
		when '0' & x"083502" => data_out <= x"04";
		when '0' & x"083601" => data_out <= x"06";
		when '0' & x"090204" => data_out <= x"02";
		when '0' & x"090402" => data_out <= x"04";
		when '1' & x"090410" => data_out <= x"08";
		when '1' & x"090610" => data_out <= x"08";
		when '0' & x"091020" => data_out <= x"10";
		when '1' & x"091004" => data_out <= x"08";
		when '0' & x"091204" => data_out <= x"02";
		when '0' & x"091220" => data_out <= x"10";
		when '1' & x"091204" => data_out <= x"08";
		when '0' & x"091402" => data_out <= x"04";
		when '0' & x"091420" => data_out <= x"10";
		when '0' & x"091620" => data_out <= x"10";
		when '0' & x"092204" => data_out <= x"02";
		when '0' & x"092402" => data_out <= x"04";
		when '1' & x"092410" => data_out <= x"08";
		when '1' & x"092610" => data_out <= x"08";
		when '1' & x"093004" => data_out <= x"08";
		when '0' & x"093204" => data_out <= x"02";
		when '1' & x"093204" => data_out <= x"08";
		when '0' & x"093402" => data_out <= x"04";
		when '1' & x"0a0104" => data_out <= x"02";
		when '1' & x"0a0401" => data_out <= x"02";
		when '1' & x"0a0410" => data_out <= x"08";
		when '1' & x"0a0510" => data_out <= x"08";
		when '0' & x"0a1020" => data_out <= x"10";
		when '1' & x"0a1004" => data_out <= x"08";
		when '0' & x"0a1120" => data_out <= x"10";
		when '1' & x"0a1104" => data_out <= x"0a";
		when '0' & x"0a1420" => data_out <= x"10";
		when '1' & x"0a1401" => data_out <= x"02";
		when '0' & x"0a1520" => data_out <= x"10";
		when '1' & x"0a2104" => data_out <= x"02";
		when '1' & x"0a2401" => data_out <= x"02";
		when '1' & x"0a2410" => data_out <= x"08";
		when '1' & x"0a2510" => data_out <= x"08";
		when '1' & x"0a3004" => data_out <= x"08";
		when '1' & x"0a3104" => data_out <= x"0a";
		when '1' & x"0a3401" => data_out <= x"02";
		when '1' & x"0b0410" => data_out <= x"08";
		when '0' & x"0b1020" => data_out <= x"10";
		when '1' & x"0b1004" => data_out <= x"08";
		when '0' & x"0b1420" => data_out <= x"10";
		when '1' & x"0b2410" => data_out <= x"08";
		when '1' & x"0b3004" => data_out <= x"08";
		when '0' & x"0c0201" => data_out <= x"02";
		when '1' & x"0c0210" => data_out <= x"0c";
		when '1' & x"0c0310" => data_out <= x"0c";
		when '0' & x"0c1020" => data_out <= x"10";
		when '1' & x"0c1002" => data_out <= x"0c";
		when '0' & x"0c1120" => data_out <= x"10";
		when '1' & x"0c1102" => data_out <= x"0c";
		when '0' & x"0c1201" => data_out <= x"02";
		when '0' & x"0c1220" => data_out <= x"10";
		when '0' & x"0c1320" => data_out <= x"10";
		when '0' & x"0c2201" => data_out <= x"02";
		when '1' & x"0c2210" => data_out <= x"0c";
		when '1' & x"0c2310" => data_out <= x"0c";
		when '1' & x"0c3002" => data_out <= x"0c";
		when '1' & x"0c3102" => data_out <= x"0c";
		when '0' & x"0c3201" => data_out <= x"02";
		when '1' & x"0d0210" => data_out <= x"0c";
		when '0' & x"0d1020" => data_out <= x"10";
		when '1' & x"0d1002" => data_out <= x"0c";
		when '0' & x"0d1220" => data_out <= x"10";
		when '1' & x"0d2210" => data_out <= x"0c";
		when '1' & x"0d3002" => data_out <= x"0c";
		when '1' & x"0e0110" => data_out <= x"0e";
		when '0' & x"0e1020" => data_out <= x"10";
		when '1' & x"0e1001" => data_out <= x"0e";
		when '0' & x"0e1120" => data_out <= x"10";
		when '1' & x"0e2110" => data_out <= x"0e";
		when '1' & x"0e3001" => data_out <= x"0e";
		when '0' & x"0f1020" => data_out <= x"10";
		when '0' & x"100804" => data_out <= x"08";
		when '1' & x"100820" => data_out <= x"10";
		when '0' & x"100904" => data_out <= x"08";
		when '1' & x"100920" => data_out <= x"10";
		when '0' & x"100a04" => data_out <= x"08";
		when '1' & x"100a20" => data_out <= x"10";
		when '0' & x"100b04" => data_out <= x"08";
		when '1' & x"100b20" => data_out <= x"10";
		when '0' & x"100c02" => data_out <= x"0c";
		when '1' & x"100c20" => data_out <= x"10";
		when '0' & x"100d02" => data_out <= x"0c";
		when '1' & x"100d20" => data_out <= x"10";
		when '0' & x"100e01" => data_out <= x"0e";
		when '1' & x"100e20" => data_out <= x"10";
		when '1' & x"100f20" => data_out <= x"10";
		when '1' & x"102008" => data_out <= x"10";
		when '1' & x"102108" => data_out <= x"10";
		when '1' & x"102208" => data_out <= x"10";
		when '1' & x"102308" => data_out <= x"10";
		when '1' & x"102408" => data_out <= x"10";
		when '1' & x"102508" => data_out <= x"10";
		when '1' & x"102608" => data_out <= x"10";
		when '1' & x"102708" => data_out <= x"10";
		when '0' & x"102804" => data_out <= x"08";
		when '0' & x"102904" => data_out <= x"08";
		when '0' & x"102a04" => data_out <= x"08";
		when '0' & x"102b04" => data_out <= x"08";
		when '0' & x"102c02" => data_out <= x"0c";
		when '0' & x"102d02" => data_out <= x"0c";
		when '0' & x"102e01" => data_out <= x"0e";
		when '0' & x"110204" => data_out <= x"02";
		when '0' & x"110608" => data_out <= x"06";
		when '0' & x"110804" => data_out <= x"08";
		when '1' & x"110820" => data_out <= x"10";
		when '0' & x"110a04" => data_out <= x"0a";
		when '1' & x"110a20" => data_out <= x"10";
		when '0' & x"110c02" => data_out <= x"0c";
		when '1' & x"110c20" => data_out <= x"10";
		when '1' & x"110e20" => data_out <= x"10";
		when '1' & x"112008" => data_out <= x"10";
		when '0' & x"112204" => data_out <= x"02";
		when '1' & x"112208" => data_out <= x"10";
		when '1' & x"112408" => data_out <= x"10";
		when '0' & x"112608" => data_out <= x"06";
		when '1' & x"112608" => data_out <= x"10";
		when '0' & x"112804" => data_out <= x"08";
		when '0' & x"112a04" => data_out <= x"0a";
		when '0' & x"112c02" => data_out <= x"0c";
		when '1' & x"120104" => data_out <= x"02";
		when '0' & x"120408" => data_out <= x"04";
		when '1' & x"120401" => data_out <= x"02";
		when '0' & x"120508" => data_out <= x"04";
		when '0' & x"120804" => data_out <= x"08";
		when '1' & x"120820" => data_out <= x"10";
		when '0' & x"120904" => data_out <= x"08";
		when '1' & x"120904" => data_out <= x"02";
		when '1' & x"120920" => data_out <= x"10";
		when '1' & x"120c01" => data_out <= x"02";
		when '1' & x"120c20" => data_out <= x"10";
		when '1' & x"120d20" => data_out <= x"10";
		when '1' & x"122008" => data_out <= x"10";
		when '1' & x"122104" => data_out <= x"02";
		when '1' & x"122108" => data_out <= x"10";
		when '0' & x"122408" => data_out <= x"04";
		when '1' & x"122401" => data_out <= x"02";
		when '1' & x"122408" => data_out <= x"10";
		when '0' & x"122508" => data_out <= x"04";
		when '1' & x"122508" => data_out <= x"10";
		when '0' & x"122804" => data_out <= x"08";
		when '0' & x"122904" => data_out <= x"08";
		when '1' & x"122904" => data_out <= x"02";
		when '1' & x"122c01" => data_out <= x"02";
		when '0' & x"130408" => data_out <= x"04";
		when '0' & x"130804" => data_out <= x"08";
		when '1' & x"130820" => data_out <= x"10";
		when '1' & x"130c20" => data_out <= x"10";
		when '1' & x"132008" => data_out <= x"10";
		when '0' & x"132408" => data_out <= x"04";
		when '1' & x"132408" => data_out <= x"10";
		when '0' & x"132804" => data_out <= x"08";
		when '0' & x"140201" => data_out <= x"02";
		when '1' & x"140208" => data_out <= x"04";
		when '1' & x"140308" => data_out <= x"04";
		when '1' & x"140802" => data_out <= x"04";
		when '1' & x"140820" => data_out <= x"10";
		when '1' & x"140902" => data_out <= x"04";
		when '1' & x"140920" => data_out <= x"10";
		when '0' & x"140a01" => data_out <= x"02";
		when '1' & x"140a20" => data_out <= x"10";
		when '1' & x"140b20" => data_out <= x"10";
		when '1' & x"142008" => data_out <= x"10";
		when '1' & x"142108" => data_out <= x"10";
		when '0' & x"142201" => data_out <= x"02";
		when '1' & x"142208" => data_out <= x"14";
		when '1' & x"142308" => data_out <= x"14";
		when '1' & x"142802" => data_out <= x"04";
		when '1' & x"142902" => data_out <= x"04";
		when '0' & x"142a01" => data_out <= x"02";
		when '1' & x"150208" => data_out <= x"04";
		when '1' & x"150802" => data_out <= x"04";
		when '1' & x"150820" => data_out <= x"10";
		when '1' & x"150a20" => data_out <= x"10";
		when '1' & x"152008" => data_out <= x"10";
		when '1' & x"152208" => data_out <= x"14";
		when '1' & x"152802" => data_out <= x"04";
		when '1' & x"160108" => data_out <= x"06";
		when '1' & x"160801" => data_out <= x"06";
		when '1' & x"160820" => data_out <= x"10";
		when '1' & x"160920" => data_out <= x"10";
		when '1' & x"162008" => data_out <= x"10";
		when '1' & x"162108" => data_out <= x"16";
		when '1' & x"162801" => data_out <= x"06";
		when '1' & x"170820" => data_out <= x"10";
		when '1' & x"172008" => data_out <= x"10";
		when '0' & x"180402" => data_out <= x"04";
		when '1' & x"180420" => data_out <= x"18";
		when '0' & x"180502" => data_out <= x"04";
		when '1' & x"180520" => data_out <= x"18";
		when '0' & x"180601" => data_out <= x"06";
		when '1' & x"180620" => data_out <= x"18";
		when '1' & x"180720" => data_out <= x"18";
		when '1' & x"182004" => data_out <= x"18";
		when '1' & x"182104" => data_out <= x"18";
		when '1' & x"182204" => data_out <= x"18";
		when '1' & x"182304" => data_out <= x"18";
		when '0' & x"182402" => data_out <= x"04";
		when '0' & x"182502" => data_out <= x"04";
		when '0' & x"182601" => data_out <= x"06";
		when '0' & x"190204" => data_out <= x"02";
		when '0' & x"190402" => data_out <= x"04";
		when '1' & x"190420" => data_out <= x"18";
		when '1' & x"190620" => data_out <= x"18";
		when '1' & x"192004" => data_out <= x"18";
		when '0' & x"192204" => data_out <= x"02";
		when '1' & x"192204" => data_out <= x"18";
		when '0' & x"192402" => data_out <= x"04";
		when '1' & x"1a0104" => data_out <= x"02";
		when '1' & x"1a0401" => data_out <= x"02";
		when '1' & x"1a0420" => data_out <= x"18";
		when '1' & x"1a0520" => data_out <= x"18";
		when '1' & x"1a2004" => data_out <= x"18";
		when '1' & x"1a2104" => data_out <= x"1a";
		when '1' & x"1a2401" => data_out <= x"02";
		when '1' & x"1b0420" => data_out <= x"18";
		when '1' & x"1b2004" => data_out <= x"18";
		when '0' & x"1c0201" => data_out <= x"02";
		when '1' & x"1c0220" => data_out <= x"1c";
		when '1' & x"1c0320" => data_out <= x"1c";
		when '1' & x"1c2002" => data_out <= x"1c";
		when '1' & x"1c2102" => data_out <= x"1c";
		when '0' & x"1c2201" => data_out <= x"02";
		when '1' & x"1d0220" => data_out <= x"1c";
		when '1' & x"1d2002" => data_out <= x"1c";
		when '1' & x"1e0120" => data_out <= x"1e";
		when '1' & x"1e2001" => data_out <= x"1e";
		when '0' & x"201008" => data_out <= x"10";
		when '0' & x"201108" => data_out <= x"10";
		when '0' & x"201208" => data_out <= x"10";
		when '0' & x"201308" => data_out <= x"10";
		when '0' & x"201408" => data_out <= x"10";
		when '0' & x"201508" => data_out <= x"10";
		when '0' & x"201608" => data_out <= x"10";
		when '0' & x"201708" => data_out <= x"10";
		when '0' & x"201804" => data_out <= x"18";
		when '0' & x"201904" => data_out <= x"18";
		when '0' & x"201a04" => data_out <= x"18";
		when '0' & x"201b04" => data_out <= x"18";
		when '0' & x"201c02" => data_out <= x"1c";
		when '0' & x"201d02" => data_out <= x"1c";
		when '0' & x"201e01" => data_out <= x"1e";
		when '0' & x"210204" => data_out <= x"02";
		when '0' & x"210608" => data_out <= x"06";
		when '0' & x"210a04" => data_out <= x"02";
		when '0' & x"210e10" => data_out <= x"0e";
		when '0' & x"211008" => data_out <= x"10";
		when '0' & x"211204" => data_out <= x"02";
		when '0' & x"211208" => data_out <= x"10";
		when '0' & x"211408" => data_out <= x"10";
		when '0' & x"211608" => data_out <= x"16";
		when '0' & x"211804" => data_out <= x"18";
		when '0' & x"211a04" => data_out <= x"1a";
		when '0' & x"211c02" => data_out <= x"1c";
		when '1' & x"220104" => data_out <= x"02";
		when '0' & x"220408" => data_out <= x"04";
		when '1' & x"220401" => data_out <= x"02";
		when '0' & x"220508" => data_out <= x"04";
		when '1' & x"220904" => data_out <= x"02";
		when '0' & x"220c10" => data_out <= x"0c";
		when '1' & x"220c01" => data_out <= x"02";
		when '0' & x"220d10" => data_out <= x"0c";
		when '0' & x"221008" => data_out <= x"10";
		when '0' & x"221108" => data_out <= x"10";
		when '1' & x"221104" => data_out <= x"02";
		when '0' & x"221408" => data_out <= x"14";
		when '1' & x"221401" => data_out <= x"02";
		when '0' & x"221508" => data_out <= x"14";
		when '0' & x"221804" => data_out <= x"18";
		when '0' & x"221904" => data_out <= x"18";
		when '1' & x"221904" => data_out <= x"02";
		when '1' & x"221c01" => data_out <= x"02";
		when '0' & x"230408" => data_out <= x"04";
		when '0' & x"230c10" => data_out <= x"0c";
		when '0' & x"231008" => data_out <= x"10";
		when '0' & x"231408" => data_out <= x"14";
		when '0' & x"231804" => data_out <= x"18";
		when '0' & x"240201" => data_out <= x"02";
		when '1' & x"240208" => data_out <= x"04";
		when '1' & x"240308" => data_out <= x"04";
		when '0' & x"240810" => data_out <= x"08";
		when '1' & x"240802" => data_out <= x"04";
		when '0' & x"240910" => data_out <= x"08";
		when '1' & x"240902" => data_out <= x"04";
		when '0' & x"240a01" => data_out <= x"02";
		when '0' & x"240a10" => data_out <= x"08";
		when '0' & x"240b10" => data_out <= x"08";
		when '0' & x"241008" => data_out <= x"10";
		when '0' & x"241108" => data_out <= x"10";
		when '0' & x"241201" => data_out <= x"02";
		when '0' & x"241208" => data_out <= x"10";
		when '1' & x"241208" => data_out <= x"04";
		when '0' & x"241308" => data_out <= x"10";
		when '1' & x"241308" => data_out <= x"04";
		when '1' & x"241802" => data_out <= x"04";
		when '1' & x"241902" => data_out <= x"04";
		when '0' & x"241a01" => data_out <= x"02";
		when '1' & x"250208" => data_out <= x"04";
		when '0' & x"250810" => data_out <= x"08";
		when '1' & x"250802" => data_out <= x"04";
		when '0' & x"250a10" => data_out <= x"08";
		when '0' & x"251008" => data_out <= x"10";
		when '0' & x"251208" => data_out <= x"10";
		when '1' & x"251208" => data_out <= x"04";
		when '1' & x"251802" => data_out <= x"04";
		when '1' & x"260108" => data_out <= x"06";
		when '0' & x"260810" => data_out <= x"08";
		when '1' & x"260801" => data_out <= x"06";
		when '0' & x"260910" => data_out <= x"08";
		when '0' & x"261008" => data_out <= x"10";
		when '0' & x"261108" => data_out <= x"10";
		when '1' & x"261108" => data_out <= x"06";
		when '1' & x"261801" => data_out <= x"06";
		when '0' & x"270810" => data_out <= x"08";
		when '0' & x"271008" => data_out <= x"10";
		when '0' & x"280402" => data_out <= x"04";
		when '1' & x"280410" => data_out <= x"08";
		when '0' & x"280502" => data_out <= x"04";
		when '1' & x"280510" => data_out <= x"08";
		when '0' & x"280601" => data_out <= x"06";
		when '1' & x"280610" => data_out <= x"08";
		when '1' & x"280710" => data_out <= x"08";
		when '1' & x"281004" => data_out <= x"08";
		when '1' & x"281104" => data_out <= x"08";
		when '1' & x"281204" => data_out <= x"08";
		when '1' & x"281304" => data_out <= x"08";
		when '0' & x"281402" => data_out <= x"04";
		when '0' & x"281502" => data_out <= x"04";
		when '0' & x"281601" => data_out <= x"06";
		when '0' & x"290204" => data_out <= x"02";
		when '0' & x"290402" => data_out <= x"04";
		when '1' & x"290410" => data_out <= x"08";
		when '1' & x"290610" => data_out <= x"08";
		when '1' & x"291004" => data_out <= x"08";
		when '0' & x"291204" => data_out <= x"02";
		when '1' & x"291204" => data_out <= x"08";
		when '0' & x"291402" => data_out <= x"04";
		when '1' & x"2a0104" => data_out <= x"02";
		when '1' & x"2a0401" => data_out <= x"02";
		when '1' & x"2a0410" => data_out <= x"08";
		when '1' & x"2a0510" => data_out <= x"08";
		when '1' & x"2a1004" => data_out <= x"08";
		when '1' & x"2a1104" => data_out <= x"0a";
		when '1' & x"2a1401" => data_out <= x"02";
		when '1' & x"2b0410" => data_out <= x"08";
		when '1' & x"2b1004" => data_out <= x"08";
		when '0' & x"2c0201" => data_out <= x"02";
		when '1' & x"2c0210" => data_out <= x"0c";
		when '1' & x"2c0310" => data_out <= x"0c";
		when '1' & x"2c1002" => data_out <= x"0c";
		when '1' & x"2c1102" => data_out <= x"0c";
		when '0' & x"2c1201" => data_out <= x"02";
		when '1' & x"2d0210" => data_out <= x"0c";
		when '1' & x"2d1002" => data_out <= x"0c";
		when '1' & x"2e0110" => data_out <= x"0e";
		when '1' & x"2e1001" => data_out <= x"0e";
		when '0' & x"300804" => data_out <= x"08";
		when '0' & x"300904" => data_out <= x"08";
		when '0' & x"300a04" => data_out <= x"08";
		when '0' & x"300b04" => data_out <= x"08";
		when '0' & x"300c02" => data_out <= x"0c";
		when '0' & x"300d02" => data_out <= x"0c";
		when '0' & x"300e01" => data_out <= x"0e";
		when '0' & x"310204" => data_out <= x"02";
		when '0' & x"310608" => data_out <= x"06";
		when '0' & x"310804" => data_out <= x"08";
		when '0' & x"310a04" => data_out <= x"0a";
		when '0' & x"310c02" => data_out <= x"0c";
		when '1' & x"320104" => data_out <= x"02";
		when '0' & x"320408" => data_out <= x"04";
		when '1' & x"320401" => data_out <= x"02";
		when '0' & x"320508" => data_out <= x"04";
		when '0' & x"320804" => data_out <= x"08";
		when '0' & x"320904" => data_out <= x"08";
		when '1' & x"320904" => data_out <= x"02";
		when '1' & x"320c01" => data_out <= x"02";
		when '0' & x"330408" => data_out <= x"04";
		when '0' & x"330804" => data_out <= x"08";
		when '0' & x"340201" => data_out <= x"02";
		when '1' & x"340208" => data_out <= x"04";
		when '1' & x"340308" => data_out <= x"04";
		when '1' & x"340802" => data_out <= x"04";
		when '1' & x"340902" => data_out <= x"04";
		when '0' & x"340a01" => data_out <= x"02";
		when '1' & x"350208" => data_out <= x"04";
		when '1' & x"350802" => data_out <= x"04";
		when '1' & x"360108" => data_out <= x"06";
		when '1' & x"360801" => data_out <= x"06";
		when '0' & x"380402" => data_out <= x"04";
		when '0' & x"380502" => data_out <= x"04";
		when '0' & x"380601" => data_out <= x"06";
		when '0' & x"390204" => data_out <= x"02";
		when '0' & x"390402" => data_out <= x"04";
		when '1' & x"3a0104" => data_out <= x"02";
		when '1' & x"3a0401" => data_out <= x"02";
		when '0' & x"3c0201" => data_out <= x"02";
		when others => data_out <= x"00";
	end case;
end process;

end RTL;

